<?php
session_start();
include "Includes/solotrn_sesion.php";
include "Includes/soloFun_Generales.php";
require_once "config.php";
require_once "Includes/conexion.class.php";

//////////////////
//esta parte es para hacer la entrega del ticket
//al usuario una vez finalizado
//////////////////
$accion = $_REQUEST["accion"];
if(!is_null($accion) && $accion == "entregar"){
    $id_ticket = $_REQUEST["txtCriterio"];
    $sql = "UPDATE solotb_ticket SET estado = 67, fecha_entrega = CURRENT_TIMESTAMP WHERE id = $id_ticket";
    //echo $sql;
    SoloFun_ExecQuery($sql);

    return;
}
////////////////////
global $oPHPMailer;

//'obtiene valores para la tabla solotb_ticket
$opcion = $_REQUEST["opcion"];
$arrQueries = array();

if ($_REQUEST["txtId"] <> "")
    $txtId = $_REQUEST["txtId"];
else
    $txtId = $_REQUEST["id"];

$txtFecha = $_REQUEST["txtFecha"];

$bandera = $_REQUEST["bandera"];
$XtxtUsuario = $_REQUEST["XtxtUsuario"];
$XtxtNombre = $_REQUEST["XtxtNombre"];
$XtxtMail = $_REQUEST["XtxtMail"];
$xtxtTelefono = $_REQUEST["xtxtTelefono"];
//'CboRol=$_REQUEST["CboRol")
$txtcargo = $_REQUEST["txtcargo"];
$txtempr = $_REQUEST["txtempr"];
$CboEstado = $_REQUEST["CboEstado"];
$compestado = $_REQUEST["estado"];
$Prioridad = "1";
//$CboOrigen = $_REQUEST["CboOrigen"];
//$CboEmpresa = $_REQUEST["CboEmpresa"];
$CboEmpresa = $_REQUEST["txtempr"];
$CboArea = $_REQUEST["CboArea"];
$CboCategoria1 = $_REQUEST["CboCategoria1"];
$CboCategoria2 = $_REQUEST["CboCategoria2"];
$CboCategoria3 = $_REQUEST["CboCategoria3"];
$asunto = $_REQUEST["asunto"];
$Cbomedida = $_REQUEST["Cbomedida"];
$canti = $_REQUEST["txtcanti"];

/*
//'------------------------------------------------------------------------------------------------------------------
//'Obtiene los tecnicos que estan asignados a tratar la categoria escogida
$soloSQL = "select * from solotb_asociar_categ_tecnico where id_nivel1=$CboEmpresa and id_nivel2=$CboArea and id_nivel3=$CboCategoria1 and id_nivel4=$CboCategoria2 and id_nivel5=$CboCategoria3";
//'rw "",soloSQL
//'re
soloFun_ExecSQL ($soloSQL,$SoloArrtecnicos);

//'Obtiene entre los tecnicos que tengan esa categoria el que menos tickets tenga
for ($i = 0; $i < count($SoloArrtecnicos); $i++) {
    $strsql1 = "select min(cantidad) as cantidad1 from tb_soporte where codigo like'".$SoloArrtecnicos[$i][1]."'";
    //'rw "",strsql1
    //'re
    $cantidad = EjecutaSentenciaSql($strsql1);
    if ($i == 0)
        $cantidad1 = $cantidad;

    if ($cantidad <= $cantidad1) {
        $cantidad1 = $cantidad;
        $asignado = $SoloArrtecnicos[$i][1];
    }
}
//    'rw "",cantidad
//	'rw "",asignado
//	're
//
*/

/*NO BORRAR!!!!!
//'Obtiene la medida de tiempo y la cantidad para insertar en el ticket
$strsql = "SELECT tipo_medida_tiempo,cantidad_medida_tiempo from solotb_asociar_categ_tecnico where cod_tecnico like '$tecnico_soporte_usuario' and id_nivel1=$CboEmpresa and id_nivel2=$CboArea and id_nivel3=$CboCategoria1 and id_nivel4=$CboCategoria2 and id_nivel5=$CboCategoria3";
//	'rw "",strsql
//	're
$err=0;
SoloFun_ExecSql ($strsql, $Arrmedidastiempo);
$medida = 0;
$cantidad1=0;
if (!empty($Arrmedidastiempo)) {
    $medida = $Arrmedidastiempo[0][0];
    $cantidad1 = $Arrmedidastiempo[0][1];
}*/

//---------------------------------------------------------------------------------------------------------------------
$XtxtDescripcionSolicitud1 = $_REQUEST["XtxtDescripcionSolicitud1"];
$xtxtDescripcionSolicitud2 = $_REQUEST["xtxtDescripcionSolicitud2"];

//printArray($_FILES);
for($i = 1; $i <= 5; $i++) {
    $txtarchivo[$i] = $_FILES["txtarchivo$i"];
    if(!empty($txtarchivo[$i]["tmp_name"])) {
        $tmp_name = $txtarchivo[$i]["tmp_name"];
        $fp = fopen($tmp_name, "rb");
        $archivo[$i] = fread($fp, filesize($tmp_name));
        $archivo[$i] = addslashes($archivo[$i]);
        fclose($fp);
    }
}

/*$txtarchivo1 = $_FILES["txtarchivo1"];
if(!is_null($txtarchivo1)){
    $tmp_name = $txtarchivo1["tmp_name"];
    $fp = fopen($tmp_name, "rb");
    $archivo1 = fread($fp, filesize($tmp_name));
    $archivo1 = addslashes($archivo1);
    fclose($fp);
}

$txtarchivo2 = $_FILES["txtarchivo2"];
if(!is_null($txtarchivo2)){
    $tmp_name = $txtarchivo2["tmp_name"];
    $fp = fopen($tmp_name, "rb");
    $archivo2 = fread($fp, filesize($tmp_name));
    $archivo2 = addslashes($archivo2);
    fclose($fp);
}

$txtarchivo3 = $_FILES["txtarchivo3"];
if(!is_null($txtarchivo3)){
    $tmp_name = $txtarchivo3["tmp_name"];
    $fp = fopen($tmp_name, "rb");
    $archivo3 = fread($fp, filesize($tmp_name));
    $archivo3 = addslashes($archivo3);
    fclose($fp);
}

$txtarchivo4 = $_FILES["txtarchivo4"];
if(!is_null($txtarchivo1)){
    $tmp_name = $txtarchivo1["tmp_name"];
    $fp = fopen($tmp_name, "rb");
    $archivo1 = fread($fp, filesize($tmp_name));
    $archivo1 = addslashes($archivo1);
    fclose($fp);
}

$txtarchivo5 = $_FILES["txtarchivo5"];
if(!is_null($txtarchivo5)){
    $tmp_name = $txtarchivo5["tmp_name"];
    $fp = fopen($tmp_name, "rb");
    $archivo5 = fread($fp, filesize($tmp_name));
    $archivo5 = addslashes($archivo5);
    fclose($fp);
}*/
$XtxtTecnicoUser1 = $tecnico_soporte_usuario;
$xtxtTecnicoNombre1 = $tecnico_soporte_nombre;
$txtFechaAsignacion1 = @date("d/m/Y");//$_REQUEST["txtFechaAsignacion1"];
$xtxtTecnicoUser2 = $_REQUEST["xtxtTecnicoUser2"];
$xtxtTecnicoNombre2 = $_REQUEST["xtxtTecnicoNombre2"];
$txtFechaAsignacion2 = $_REQUEST["txtFechaAsignacion2"];
$xtxtTecnicoUser3 = $_REQUEST["xtxtTecnicoUser3"];
$xtxtTecnicoNombre3 = $_REQUEST["xtxtTecnicoNombre3"];
$txtFechaAsignacion3 = $_REQUEST["txtFechaAsignacion3"];
$xtxtReasignacionMotivo = $_REQUEST["xtxtReasignacionMotivo"];
$xtxtReasignacionUser = $_REQUEST["xtxtReasignacionUser"];
$xtxtDescripcionSolucion1 = $_REQUEST["xtxtDescripcionSolucion1"];
$xtxtDescripcionSolucion2 = $_REQUEST["xtxtDescripcionSolucion2"];
//$txtfile1 = $_FILES["txtfile1"];
//$txtfile2 = $_FILES["txtfile2"];
//$txtfile3 = $_FILES["txtfile3"];
//$txtfile4 = $_FILES["txtfile4"];
//$txtfile5 = $_FILES["txtfile5"];
$txtFechaSolucion = $_REQUEST["txtFechaSolucion"];
$xtxtTiempoT = $_REQUEST["xtxtTiempoT"];
//'ntxtTiempoDias=$_REQUEST["ntxtTiempoDias")
$ntxtTiempoHoras = $_REQUEST["ntxtTiempoHoras"];
if ($ntxtTiempoHoras == "")
    $ntxtTiempoHoras = 0;

$txtActualizacionFecha = @date("m/d/Y");
$XtxtActualizacionUser = $_SESSION["co_usua"];
$EstadoRegistro = "A";
$cantidad = $cantidad1;

//'formatea las fechas para guardarlas en la base de datos
//$txtFecha = FormatFecha($txtFecha,"DD/MM/YYYY","YYYY/MM/DD");
$pivot = $txtFecha;
$hora1 = date("H:i").":00";

//'proceso para obtener la fecha de expiracion del tikcet

//$pivot = FormatFecha($txtFecha,"YYYY/DD/MM","DD/MM/YYYY");
$arrPivot = preg_split("[\/]", $pivot);
$pivot = mktime(null,null,null,$arrPivot[1],$arrPivot[0],$arrPivot[2]);

/*NO BORRAR!!!!
 * switch ($medida) {
    case 63:
        for ($cont = 1; $i < $cantidad1; $i++) {
            $fechaexpiracion = DateAdd("d",1,$pivot);
//	             'rw "fechaexpiracion+1",fechaexpiracion
//	             're
            $pivot = $fechaexpiracion;
//	             'rw "",pivot
//	             're
//				 'rw "weekday",weekday(fechaexpiracion)
            $array_date = getdate($fechaexpiracion);
            if ($array_date["weekday"] == 7 || $array_date["weekday"] == 1)
                $cont--;

//				 'rw "cont",cont
//				 're
        }
//	         'fechaexpiracion=formatfecha(fechaexpiracion,"MM/DD/YYYY","YYYY-MM-DD")
        //$fechaexpiracion = FormatFecha($fechaexpiracion,"DD/MM/YYYY","YYYY-MM-DD");
        $fechaexpiracion = date("Y-m-d H:i").":00";
        //$fechaexpiracion .= " " . $hora1;
//	         'rw "",fechaexpiracion
//	         're
        break;
    case 64:
        $hora2 = DateAdd("h",$cantidad1,mktime(date("H"), date("i"), null, null, null, null));
        //$hora2 = formatdatetime($fechaexpiracion,4);
        $fechaexpiracion = $txtFecha." ".date("H:i",$hora2). ":00";
        break;
    case 65:
        $arrFecha = split("/", $txtFecha);
        //$timestamp = mktime(null, null, null, $arrFecha[1], $arrFecha[2], $arrFecha[0]);
    $timestamp = mktime(null, null, null, $arrFecha[1], $arrFecha[0], $arrFecha[2]);
        $fechaexpiracion = DateAdd("n",$cantidad1,$timestamp);
        $fechaexpiracion = date("Y/m/d", $fechaexpiracion);
        break;
}
*/

$txtFecha .= " ". $hora1;
//$txtFechaAsignacion1 = FormatFecha($txtFechaAsignacion1,"MM/DD/YYYY","YYYY/MM/DD");
//$txtFechaAsignacion2 = FormatFecha($txtFechaAsignacion2,"MM/DD/YYYY","YYYY/MM/DD");
//$txtFechaAsignacion3 = FormatFecha($txtFechaAsignacion3,"MM/DD/YYYY","YYYY/MM/DD");
$txtFechaAsignacion1 = FormatFecha($txtFechaAsignacion1,"DD/MM/YYYY","YYYY/MM/DD");
$txtFechaAsignacion2 = FormatFecha($txtFechaAsignacion2,"DD/MM/YYYY","YYYY/MM/DD");
$txtFechaAsignacion3 = FormatFecha($txtFechaAsignacion3,"DD/MM/YYYY","YYYY/MM/DD");
$txtFechaSolucion = FormatFecha($txtFechaSolucion,"MM/DD/YYYY","YYYY/MM/DD");
$txtActualizacionFecha = FormatFecha($txtActualizacionFecha,"MM/DD/YYYY","YYYY/MM/DD");
$Sql = " select DATEDIFF('" .$txtFechaSolucion. "','".$txtFecha. "')";

$err=0;
$ntxtTiempoDias = soloFun_ExecSQL ($Sql,$ArrTiempo);
$ntxtTiempoDias = 0;

for($i = 1; $i <= 5; $i++) {
    if(!empty($txtarchivo[$i]["tmp_name"])) {
        $file[$i] = ", archivo$i";
        $blob[$i] = ", '$archivo[$i]'";
    }else {
        $file[$i] = "";
        $blob[$i] = "";
    }
}

//Obtener el mail del Jefe de Departamento para enviar notificacion del ticket
if(empty($CboArea))
    $strsql = "select nu_usua, mail from solotb_usuario_infoadic left join solotb_nivel2 on co_supervisor = nu_usua where id2 = {$_REQUEST["area"]}";
else
    $strsql = "select nu_usua, mail from solotb_usuario_infoadic left join solotb_nivel2 on co_supervisor = nu_usua where id2 = $CboArea";
$Administrador = SoloFun_ExecSql($strsql, $ArrDatosSupervisor);
//echo $strsql;
//printArray($ArrDatosSupervisor);
switch ($opcion) {
    case "0" :
    //SECRETARIA
//        $sql0 = "select max(id)+1 from solotb_ticket_dpto";
//        $maxId = SoloFun_ExecSql($sql0, $Arreglo);
//        if(empty($maxId))
//            $maxId = 1;

        $sql1 = "select max(id)+1 from solotb_ticket";
        $maxTicketId = SoloFun_ExecSql($sql1, $Arreglo);
        if(empty($maxTicketId))
            $maxTicketId = 1;

        $arrQueries = array();
        if(is_null($CboCategoria3) || empty($CboCategoria3))
            $tramite = $CboCategoria2;
        else $tramite = $CboCategoria3;

        //OBTENGO EL TIEMPO PARA EL TRAMITE
        $sql = "SELECT duracion, unidad_tiempo FROM tramite_tiempo WHERE id_tramite = $tramite";
        SoloFun_ExecSql($sql, $arr);
        if(is_array($arr)){
            $tiempo_tramite = $arr[0];
            if(is_null($tiempo_tramite[0])){
                $tiempo_tramite[0] = 'NULL';
                $tiempo_tramite[1] = 'NULL';
            }
        }

        $sql = "select cod_dep1, cod_dep2, cod_dep3, cod_dep4, cod_dep5 from tb_flujo where cod_tramite = $tramite";
        SoloFun_ExecSql($sql, $Arreglo);

        $tipo = "INSERT";
        $tabla = "solotb_ticket_dpto";
        if(count($Arreglo) == 0){
            //Obtener el mail del Jefe de Departamento para enviar notificacion del ticket
//            if(empty($CboArea))
//                $strsql = "select nu_usua, mail from solotb_usuario_infoadic left join solotb_nivel2 on co_supervisor = nu_usua where id2 = {$_REQUEST["area"]}";
//            else
//                $strsql = "select nu_usua, mail from solotb_usuario_infoadic left join solotb_nivel2 on co_supervisor = nu_usua where id2 = $CboArea";
//            $Administrador = SoloFun_ExecSql($strsql, $ArrDatosSupervisor);
            $SoloTos = "$XtxtMail, {$ArrDatosSupervisor[0][1]}";
//            $sql0 = "select max(id)+1 from solotb_ticket_dpto";
//            $maxId = SoloFun_ExecSql($sql0, $Arreglo);
//            if(empty($maxId))
//                $maxId = 1;

            //$tipo = "INSERT";
            //$tabla = "solotb_ticket_dpto";
            $sql = "$tipo into $tabla(id_ticket, cod_dpto, estado, Administrador, nodo) values ($maxTicketId, $CboArea, 62, $Administrador, {$_SESSION["empresa"]})";
            array_push($arrQueries, $sql);
            array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));
        }else{
            $SoloTos = "$XtxtMail";
//            $maxIdIni = $maxId;
//            foreach($Arreglo[0] as $dpto){
//                if(!is_null($dpto) && !empty($dpto)){
//                    $estado_dpto = ($maxId == $maxIdIni)?62:"NULL";
//                    //Obtener el mail del Jefe de Departamento para enviar notificacion del ticket
//                    $strsql = "select nu_usua, mail from solotb_usuario_infoadic left join solotb_nivel2 on co_supervisor = nu_usua where id2 = $dpto";
//                    $Administrador = SoloFun_ExecSql($strsql, $ArrDatosSupervisor);
//                    $SoloTos .= $ArrDatosSupervisor[0][1];
//
//                    $sql = "insert into solotb_ticket_dpto (id_ticket, cod_dpto, estado, Administrador) values ($maxTicketId, $dpto, $estado_dpto, $Administrador)";
//                    array_push($arrQueries, $sql);
//                    array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));
//                    $maxId++;
//                }
//            }
            for($i = 0; $i < count($Arreglo[0]); $i++){
                $dpto = $Arreglo[0][$i];
                if(!is_null($dpto) && !empty($dpto)){
                    $estado_dpto = ($i == 0)?62:"NULL";
                    //Obtener el mail del Jefe de Departamento para enviar notificacion del ticket
                    $strsql = "select nu_usua, mail from solotb_usuario_infoadic left join solotb_nivel2 on co_supervisor = nu_usua where id2 = $dpto";
                    $Administrador = SoloFun_ExecSql($strsql, $ArrDatosSupervisor);
                    $SoloTos .= $ArrDatosSupervisor[0][1];

                    $sql = "insert into solotb_ticket_dpto (id_ticket, cod_dpto, estado, Administrador, nodo) values ($maxTicketId, $dpto, $estado_dpto, $Administrador, {$_SESSION["empresa"]})";
                    array_push($arrQueries, $sql);
                    array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));
                }
            }
        }
        $ret = false;
        $tabla = "solotb_ticket";
        $sql = "$tipo into $tabla ";
        $sql .= "(id, fecha_registro, usuario_emisor_id, usuario_emisor_nombre, usuario_emisor_email, usuario_emisor_fono, usuario_emisor_nivel,";
        //$sql .= "estado, prioridad, origen, empresa, area, categoria1, categoria2, categoria3, descripcion_solicitud1, descripcion_solicitud2,";
        $sql .= "estado, prioridad, empresa, area, categoria1, categoria2, categoria3, descripcion_solicitud1, descripcion_solicitud2,";
        $sql .= " tipo_medida_tiempo_servicio, cantidad_medida_tiempo_servicio,";
        //$sql .= "tecnico_user1, tecnico_nombre1, fecha_asignacion1, tecnico_user2, tecnico_nombre2, fecha_asignacion2, tecnico_user3, tecnico_nombre3, fecha_asignacion3,";
        //$sql .= "reasignacion_motivo, reasignacion_user, descripcion_solucion1, descripcion_solucion2, cantidad_tiempo_total, cantidad_tiempo_dias, cantidad_tiempo_horas, ";
        $sql .= "ultima_actualizacion_fecha, ultima_actualizacion_usuario, estado_registro, usuario_emisor_empresa, ";
        //$sql .= "tecnico_responsable_nombre, tecnico_responsable_user, ";
        //$sql .= " tipo_medida_tiempo_servicio, cantidad_medida_tiempo_servicio,";
        //$sql .= " asunto, ";
        $sql .= " asunto";
        //$sql .= "fecha_expiracion, ";
        //$sql .= "Administrador$file[1]$file[2]$file[3]$file[4]$file[5])";
        $sql .= "$file[1]$file[2]$file[3]$file[4]$file[5])";
        $sql .= "values (";
        //$sql .=  $txtId . ", CURRENT_TIMESTAMP, '$XtxtUsuario', '$XtxtNombre',";
        $sql .=  $maxTicketId . ", CURRENT_TIMESTAMP, '$XtxtUsuario', '$XtxtNombre', ";
        $sql .=  "'$XtxtMail', '$xtxtTelefono', '$txtcargo', 62, $Prioridad,";
        //$sql .=  "$CboOrigen, $CboEmpresa,";
        $sql .=  "$CboEmpresa,";
        if ($CboArea == "") $CboArea = 0;
        $sql .=  "" . $CboArea . ", ";
        if ($CboCategoria1 == "") $CboCategoria1 = 0;
        $sql .=  $CboCategoria1 .", ";
        if ($CboCategoria2 == "") $CboCategoria2 = 0;
        $sql .=  $CboCategoria2 . ", ";
        if ($CboCategoria3 == "") $CboCategoria3 = 0;
        $sql .=  $CboCategoria3 .", '$XtxtDescripcionSolicitud1',";
        $sql .=  "'$xtxtDescripcionSolicitud2', ";
        $sql .=  "$tiempo_tramite[1], $tiempo_tramite[0], ";
        $sql .=  "'$txtActualizacionFecha', '$XtxtActualizacionUser',";
        $sql .=  "'$EstadoRegistro', ";
        $sql .=  "'$txtempr', ";
        $sql .=  "$asunto";
        //$sql .=  $Administrador; //'el supervisor del tecnico
        $sql .=  "$blob[1]$blob[2]$blob[3]$blob[4]$blob[5])";
//echo $sql;

        //$ret = SoloFun_ExecQuery ($sql);
        array_push($arrQueries, $sql);
        array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));
//printArray($arrQueries);
        $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"],
            $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"], $WORKFLOW["encoding"]);
        $ret = $oConexion->EjecutarTransaccion($arrQueries);
        $ret = true;
        $oConexion->Cerrar();
        /*
        if ($cantidad1 >= 0) $cantidad1++;
        $strsql = "Update tb_soporte set cantidad = $cantidad1 where codigo='" .trim($XtxtTecnicoUser1) . "'";
        $ret2 = SoloFun_ExecQuery($strsql);
        */

        //$err=0;
        /*
        //'Obtiene el nombre del tecnico que va a atender el ticket
        $strsql = "SELECT codigo,nombre,mail,Administrador from tb_soporte where codigo like '$asignado'"; // '''''''''''& " and cantidad=" &cantidad1 '''TITO DICE NO ES NECESARIO CANTIDAD
        //	'rw "",strsql
        //	're
        SoloFun_ExecSql ($strsql, $ArrTecnico);

        $tecnico_soporte_usuario = $ArrTecnico[0][0];
        $tecnico_soporte_nombre = $ArrTecnico[0][1];
        $tecnico_soporte_mail = $ArrTecnico[0][2];
        $tecnico_soporte_administrador = $ArrTecnico[0][3];
        */

        $sql = "SELECT campo2, paginas
                FROM TDL_DATOS WHERE id_tdl_datos = $asunto";
        //echo $sql;
        $oConexion = new Conexion($MIES["motor_base"], $MIES["db_usuario"], $MIES["db_password"],
                $MIES["basedatos"], $MIES["servidor"], $MIES["flags"], $MIES["encoding"]);
        $nom_organizacion = SoloFun_ExecSqlFull($sql, $arrOrganizaciones, $oConexion);

        //'CORREO DIRIGIDO A LA SECRETARIA Y AL JEFE DE DEPARTAMENTO
        $oPHPMailer->ClearAddresses();
        //$SoloTos = "$XtxtMail, {$ArrDatosSupervisor[0][1]}";//$ArrTecnico[0][2];
        $oPHPMailer->AddAddress($ArrDatosSupervisor[0][1]);
        $oPHPMailer->Subject = "Requerimiento de tramite Ticket No. $maxTicketId ha sido ingresado";
        $oPHPMailer->Body = "Ticket No.$maxTicketId
Organizacion: $nom_organizacion
Fecha de Ingreso: $txtFecha
Descripcion: $XtxtDescripcionSolicitud1
Enviado por: " .$XtxtNombre."


(Las tildes han sido omitidas intencionalmente para evitar problemas de lectura)";
        $ret2 = $oPHPMailer->Send();
        //$ret2 = SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);

        /*
//  'CORREO DIRIGIDO AL Usuario
        $err = 0;
        $SoloSMTP = $SoloArrParametros[15-1][0];
        $SoloSMTP_Port = 25; ///'SoloArrParametros(0,15-1)
        $SoloFromNameDescription = $SoloArrParametros[16-1][0];
        $SoloFromAddress = $SoloArrParametros[17-1][0];
        $SoloTos = $XtxtMail;
        $SoloSubject = "Ticket No. " . $txtId . " sobre '" . $asunto . "' ha sido ingresado";

        $LINK_A = "<a href='";
        $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=1&SoloUser=" . $_SESSION["co_usua"];
        $LINK_C = "'></a>";

        $CUERPO="Ticket No.<b>".$txtId. "</b> ingresado el: ".$txtFecha."<br><br>" .$XtxtDescripcionSolicitud1."<br><br>" ."Ser&aacute; atendido por: " .$xtxtTecnicoNombre1;
//XtxtNombre

        $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

        SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
        */
        /*
        //'Guarda los archivos problema en la bd
        //'==========================================================================================================================================

//        if ($txtarchivo1 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 17;
//            $Archivo = $txtarchivo1;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
////						'rw "",respuesta
////						're
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
////						'echo "ok"
////						're
//            $oConexion->Cerrar();
//        }
//					'archivo problema2
//        if ($txtarchivo2 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=".$txtId;
//            $Campo = 18;
//            $Archivo = $txtarchivo2;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'archivo problema3
//        if ($txtarchivo3 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 19;
//            $Archivo = $txtarchivo3;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

        //'archivo problema4
//        if ($txtarchivo4 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 20;
//            $Archivo = $txtarchivo4;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

        //'archivo problema5
//        if ($txtarchivo5 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id =". $txtId;
//            $Campo = 21;
//            $Archivo = $txtarchivo5;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'Guarda los archivos Solucion en la bd
//					'==========================================================================================================================================
//        if (!is_null($txtfile1)) {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 35;
//            $tmp_name = $txtfile1["tmp_name"];
//            $fp = fopen($tmp_name, "rb");
//            $Archivo = fread($fp, filesize($tmp_name));
//            $Archivo = addslashes($Archivo);
//            fclose($fp);
//            //$Archivo = $txtfile1;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
//					'archivo problema2
//        if (!is_null($txtfile2)) {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 36;
//            $tmp_name = $txtfile2["tmp_name"];
//            $fp = fopen($tmp_name, "rb");
//            $Archivo = fread($fp, filesize($tmp_name));
//            $Archivo = addslashes($Archivo);
//            fclose($fp);
//            //$Archivo = $txtfile2;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'archivo solucion3
//        if (!is_null($txtfile3)) {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 37;
//            $tmp_name = $txtfile3["tmp_name"];
//            $fp = fopen($tmp_name, "rb");
//            $Archivo = fread($fp, filesize($tmp_name));
//            $Archivo = addslashes($Archivo);
//            fclose($fp);
//            //$Archivo = $txtfile3;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'archivo solucion4
//        if (!is_null($txtfile4)) {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 38;
//            $tmp_name = $txtfile4["tmp_name"];
//            $fp = fopen($tmp_name, "rb");
//            $Archivo = fread($fp, filesize($tmp_name));
//            $Archivo = addslashes($Archivo);
//            fclose($fp);
//            //$Archivo = $txtfile4;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'archivo solucion5
//        if (!is_null($txtfile5)) {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 39;
//            $tmp_name = $txtfile5["tmp_name"];
//            $fp = fopen($tmp_name, "rb");
//            $Archivo = fread($fp, filesize($tmp_name));
//            $Archivo = addslashes($Archivo);
//            fclose($fp);
//            //$Archivo = $txtfile5;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'rw "",sql
//					're
        */
        $err = 0;
$ret2 = true;
        if ($ret && $ret2) {
            $Mensaje = "El Ticket No. $maxTicketId ha sido Ingresado correctamente";
            $fecha_ingreso = date("d/m/Y H:i:s");
            $oConexion = new Conexion($MIES["motor_base"], $MIES["db_usuario"], $MIES["db_password"],
                    $MIES["basedatos"], $MIES["servidor"], $MIES["flags"], $MIES["encoding"]);
            $sql = "SELECT campo2 FROM TDL_DATOS WHERE id_tdl_datos = $asunto";
            $organizacion = SoloFun_ExecSqlFull($sql, $arr, $oConexion);
//echo "Location: solotrn_IngresarTicketUsuario.php?SoloError=$Mensaje&impresion=1&asunto=$organizacion&ticket=$maxTicketId&tramite=$tramite&fecha_ingreso=$fecha_ingreso&receptor=".$_SESSION["no_usuario"];
            header("Location: solotrn_IngresarTicketUsuario.php?SoloError=$Mensaje&impresion=1&asunto_txt=$organizacion&ticket=$maxTicketId&tramite=$tramite&fecha_ingreso=$fecha_ingreso&receptor=".$_SESSION["no_usuario"]);
        }else
            header("Location: solotrn_IngresarTicketUsuario.php?SoloError=1");
        break;
    case 1:
    //JEFE DE DEPARTAMENTO
        $hay_mail = false;
        if(isset($_REQUEST["CboAreaHid"]))
            $cod_dpto = $_REQUEST["CboAreaHid"];
        else{
            $sql1 = "select id2 from solotb_nivel2 where co_supervisor = {$_SESSION["id_usua"]}";
            $cod_dpto = SoloFun_ExecSql($sql1, $Arreglo);
        }
        
        $ret = false;
        $tipo = "UPDATE";
        $tabla = "solotb_ticket_dpto";
        $sql = "$tipo $tabla set ";
        if ($bandera == 1) {
            if ($Cbomedida <> $_REQUEST["cbomedidacomp"] || $canti <> $_REQUEST["canticomp"]) {
                $sql .=  " tipo_medida_tiempo_servicio=" . $Cbomedida . ", ";
                $sql .=  " cantidad_medida_tiempo_servicio=" . $canti . ", ";
                
                //====================================================================================
                //Si es primera vez que guarda el jefe de departamento se crea la fecha de expiración del ticket
                //sino hace update a la fecha de expiracion del ticket
                //$fecha = $SoloArrmails[0][1];
                //$pivot = date('d/m/Y');

                if(!empty($_REQUEST["txtFechaAsignacion3"]))
                    $pivot = getTimestampFromDate($_REQUEST["txtFechaAsignacion3"], "d-m-Y", "\/");
                elseif(!empty($_REQUEST["txtFechaAsignacion2"]))
                    $pivot = getTimestampFromDate($_REQUEST["txtFechaAsignacion2"], "d-m-Y", "\/");
                elseif(!empty($_REQUEST["txtFechaAsignacion1"]))
                    $pivot = getTimestampFromDate($_REQUEST["txtFechaAsignacion1"], "d-m-Y", "\/");
                else $pivot = mktime();
//echo $pivot;
                $hora1 = date('H:i') . ":00";
//                       'proceso para obtener la fecha de expiracion del ticket
                switch ($Cbomedida) {
                    case "1"://dias
//echo $pivot;
                        for ($cont = 0; $cont < $canti; $cont++) {
                            $fechaexpiracion = DateAdd("d",1,$pivot);
                            //$timestamp= mktime($hours,$minutes,$seconds,$month,$day,$year);
                            $pivot = $fechaexpiracion;
                            $array_date = getdate($fechaexpiracion);
                            //printArray($array_date);
                            if ($array_date["wday"] == 0 || $array_date["wday"] == 6)
                                $cont--;
                        }
                        //$fechaexpiracion = FormatFecha($fechaexpiracion,"MM/DD/YYYY","YYYY-MM-DD");
                        $fechaexpiracion = date("Y-m-d H:i", $fechaexpiracion).":00";
                        //$fechaexpiracion .= " " . $hora1;
                        break;
                    case "2"://horas
                    //$hora2 = DateAdd("h",$canti,date("H:i:s"))
                    //$hora2 = formatdatetime($fechaexpiracion,4);
                        $arr_date = preg_split("[\s]", $fechaexpiracion);
                        $tiempo = preg_split("[\:]", $arr_date[1]);
                        $hora2 = $tiempo[0];
                        $fechaexpiracion = $txtFecha." ".$hora2. ":00";
                        break;
                    case "3"://minutos
                        $fechaexpiracion = DateAdd("n",$canti,$pivot);
                        break;
                }
                $txtFecha .= " ". $hora1;
                $sql .=  "fecha_expiracion='" . $fechaexpiracion . "', ";
            }
        }
        //cuando el jefe de departamento va a asignar el ticket a un
        //delegado la primera vez que abre el ticket
//echo ":".$_REQUEST["xtxtTecnicoUser1HidPrev"].":";
//        if(empty($_REQUEST["xtxtTecnicoUser1HidPrev"])) {
//
//        }

        /*if ($CboEstado <> ""){
            if ($compestado <> $CboEstado) {
//              'CORREO DIRIGIDO AL TECNICO
                $err=0;

                $SoloTos = $mailtecnico;
                $SoloSubject = "Estado del Ticket No. " . $txtId .  " ha sido modificado";
                $sqlpara = "select valor from solotb_parametros where id=".$CboEstado;
                $estado1 = EjecutaSentenciaSql($sqlpara);
                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=2&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "El estado del ticket ha sido modificado a: '".$estado1. "'";

                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);

//              'CORREO DIRIGIDO AL Usuario
                $err = 0;
                $SoloTos = $XtxtMail;
                $SoloSubject = "Estado del Ticket No. " . $txtId . " ha sido modificado";
                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=1&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "El estado del ticket ha sido modificado a: '".$estado1. "'";

                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
            }
            $sql .=  "estado='" . $CboEstado . "',";
        }*/

        $tecnicoUser1Prev = $_REQUEST["xtxtTecnicoUser1HidPrev"];
        $tecnicoUser2Prev = $_REQUEST["xtxtTecnicoUser2HidPrev"];
        $tecnicoUser3Prev = $_REQUEST["xtxtTecnicoUser3HidPrev"];

        $xtxtTecnicoUser1 = $_REQUEST["xtxtTecnicoUser1Hid"];
        $xtxtTecnicoUser2 = $_REQUEST["xtxtTecnicoUser2Hid"];
        $xtxtTecnicoUser3 = $_REQUEST["xtxtTecnicoUser3Hid"];
        /*if(!empty($_REQUEST["xtxtTecnicoUser2Hid"])) {
            $sql .=  "reasignacion_user='" . $XtxtActualizacionUser . "',";
            //'Obtiene el nombre del tecnico que va a atender el ticket
            $strsql = "SELECT codigo,nombre,mail,Administrador from tb_soporte where codigo like '{$_REQUEST["xtxtTecnicoUser2Hid"]}'";
            SoloFun_ExecSql ($strsql, $ArrTecnico);
            $sql .= " tecnico_user1 = '{$ArrTecnico[0][0]}',";
            $sql .= " tecnico_nombre2 = '{$ArrTecnico[0][1]}',";
            $sql .= " tecnico_responsable_user = '{$ArrTecnico[0][0]}',";
            $sql .= " tecnico_responsable_nombre = '{$ArrTecnico[0][1]}',";
            $sql .= " fecha_asignacion1 = CURRENT_TIMESTAMP,";
        }*/
        if($tecnicoUser1Prev != $xtxtTecnicoUser1 || $tecnicoUser2Prev != $xtxtTecnicoUser2 || $tecnicoUser3Prev != $xtxtTecnicoUser3){
            $hay_mail = true;
            if (!empty($xtxtTecnicoUser3)) {
    //            $strsql = "SELECT co_usua, no_usua, mail, a.nu_usua FROM solotb_usuario a left join solotb_usuario_infoadic b on a.nu_usua = b.nu_usua WHERE co_usua = '{$_REQUEST["xtxtTecnicoUser2Hid"]}'";
    //            SoloFun_ExecSql ($strsql, $ArrTecnico);
    //            $mailtecnico2 = $ArrTecnico[0][2];
    //            $nu_usua2 = $ArrTecnico[0][3];
                $sql .=  " reasignacion_user='" . $XtxtActualizacionUser . "', ";
                //'Obtiene el nombre del tecnico que va a atender el ticket
                $strsql = "SELECT co_usua, no_usua, a.nu_usua, mail FROM solotb_usuario a left join solotb_usuario_infoadic b on a.nu_usua = b.nu_usua WHERE co_usua = '$xtxtTecnicoUser3'";
    //echo $strsql;
                SoloFun_ExecSql ($strsql, $ArrTecnico);
                $sql .= " tecnico_user3 = '{$ArrTecnico[0][0]}',";
                $sql .= " tecnico_nombre3 ='{$ArrTecnico[0][1]}',";
                $nu_usua3 = $ArrTecnico[0][2];
                $sql .= " fecha_asignacion3 = CURRENT_TIMESTAMP, ";
                $mailtecnico3 = $ArrTecnico[0][3];

                //$soloSQL6 = "select tecnico_user2 from solotb_ticket_dpto where id_ticket= $txtId and cod_dpto = $cod_dpto";
                $soloSQL6 = "select a.nu_usua, no_usua, mail
                from solotb_usuario a
                left join solotb_ticket_dpto b on a.co_usua = b.tecnico_user2
                left join solotb_usuario_infoadic c on a.nu_usua = c.nu_usua
                where id_ticket = $txtId and cod_dpto = $cod_dpto";
    //echo $soloSQL6;
                $nu_usua2 = soloFun_ExecSQL ($soloSQL6,$SoloArrtick);
    //            $tecnicoV = $SoloArrtick[0][1];
                $mailtecnico3 = $SoloArrtick[0][2];

    //            if ($xtxtTecnicoUser3 <> $tecnicoV) {
                    $strsql = "UPDATE tb_soporte set cant_tickets_realizados = (cant_tickets_realizados+1) where nu_usua=$nu_usua3";
                    array_push($arrQueries, $strsql);
                    array_push($arrQueries, crearQueryLog("tb_soporte", "UPDATE", $strsql));
                    $strsql = "UPDATE tb_soporte set cant_tickets_realizados = (cant_tickets_realizados-1) where nu_usua=$nu_usua2";
                    array_push($arrQueries, $strsql);
                    array_push($arrQueries, crearQueryLog("tb_soporte", "UPDATE", $strsql));

                    $sql .=  " reasignado='V',";
                    $sql .=  " tecnico_responsable_nombre='$xtxtTecnicoNombre3',";
                    $sql .=  " tecnico_responsable_user='$xtxtTecnicoUser3',";

                    //$SoloTos = "{$ArrDatosSupervisor[0][1]}, $mailtecnico2, $mailtecnico3";
                    $oPHPMailer->ClearAddresses();
                    $oPHPMailer->AddAddress($mailtecnico2);
                    $oPHPMailer->AddAddress($mailtecnico3);

                    $oConexion = new Conexion($MIES["motor_base"], $MIES["db_usuario"], $MIES["db_password"],
                            $MIES["basedatos"], $MIES["servidor"], $MIES["flags"], $MIES["encoding"]);
                    $sql0 = "SELECT campo2 FROM TDL_DATOS WHERE id_tdl_datos = $asunto";
                    $organizacion = SoloFun_ExecSqlFull($sql0, $arr, $oConexion);

                    //$SoloSubject = "Reasignacion del Ticket No. $txtId sobre: '$organizacion'";
                    //$SoloContent = "Ticket No. <b>".$txtId."<b>"."<br><br>Sobre: '" .$organizacion."'<br><br>" ." Ha sido reasignado a: " .$xtxtTecnicoNombre3;
                    $oPHPMailer->Subject = "Reasignacion del Ticket No. $txtId";
                    $oPHPMailer->Body = "Ticket No. $txtId
Organizacion: '" .$organizacion."'
Ha sido reasignado a: " .$xtxtTecnicoNombre3."


(Las tildes han sido omitidas intencionalmente para evitar problemas de lectura)";

                    //SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
    //            }

                if ($txtFechaAsignacion3 <> ""){
                    $sql .=  " fecha_asignacion3='$txtFechaAsignacion3',";
                    $sql .= " fecha_asignacion = CURRENT_TIMESTAMP, ";
                }

                if ($XtxtTecnicoUser3 <> "")
                    $sql .=  " tecnico_user3='$XtxtTecnicoUser3',";

                if ($xtxtReasignacionMotivo <> "")
                    $sql .=  " reasignacion_motivo='$xtxtReasignacionMotivo',";
            }elseif (!empty($xtxtTecnicoUser2)) {
                $sql .=  " reasignacion_user='" . $XtxtActualizacionUser . "', ";
                //'Obtiene el nombre del tecnico que va a atender el ticket
                $strsql = "SELECT co_usua, no_usua, a.nu_usua, mail FROM solotb_usuario a left join solotb_usuario_infoadic b on a.nu_usua = b.nu_usua WHERE co_usua = '$xtxtTecnicoUser2'";
                SoloFun_ExecSql ($strsql, $ArrTecnico);
                $sql .= " tecnico_user2 = '{$ArrTecnico[0][0]}',";
                $sql .= " tecnico_nombre2='{$ArrTecnico[0][1]}',";
                $sql .= " fecha_asignacion2 = CURRENT_TIMESTAMP, ";
                $nu_usua2 = $ArrTecnico[0][2];
                $mailtecnico2 = $ArrTecnico[0][3];

                //$soloSQL6 = "select tecnico_user2 from solotb_ticket_dpto where id_ticket= $txtId and cod_dpto = $cod_dpto";
                $soloSQL6 = "select a.nu_usua, no_usua, mail
                from solotb_usuario a
                left join solotb_ticket_dpto b on a.co_usua = b.tecnico_user1
                left join solotb_usuario_infoadic c on a.nu_usua = c.nu_usua
                where id_ticket = $txtId and cod_dpto = $cod_dpto";

                $nu_usua = soloFun_ExecSQL ($soloSQL6,$SoloArrtick);
    //            $tecnicoV = $SoloArrtick[0][1];
                $mailtecnico = $SoloArrtick[0][2];

    //            if ($XtxtTecnicoUser2 <> $tecnicoV) {
                    $strsql = "UPDATE tb_soporte set cant_tickets_realizados = (cant_tickets_realizados+1) where nu_usua=$nu_usua2";
                    array_push($arrQueries, $strsql);
                    array_push($arrQueries, crearQueryLog("tb_soporte", "UPDATE", $strsql));
                    $strsql = "Update tb_soporte set cant_tickets_realizados = (cant_tickets_realizados-1) where nu_usua=$nu_usua";
                    array_push($arrQueries, $strsql);
                    array_push($arrQueries, crearQueryLog("tb_soporte", "UPDATE", $strsql));

                    $sql .=  " tecnico_responsable_nombre='$xtxtTecnicoNombre2',";
                    $sql .=  " tecnico_responsable_user='$xtxtTecnicoUser2',";

                    //$SoloTos = "{$ArrDatosSupervisor[0][1]}, $mailtecnico, $mailtecnico2";
                    $oPHPMailer->ClearAddresses();
                    $oPHPMailer->AddAddress($mailtecnico);
                    $oPHPMailer->AddAddress($mailtecnico2);

                    $oConexion = new Conexion($MIES["motor_base"], $MIES["db_usuario"], $MIES["db_password"],
                            $MIES["basedatos"], $MIES["servidor"], $MIES["flags"], $MIES["encoding"]);
                    $sql0 = "SELECT campo2 FROM TDL_DATOS WHERE id_tdl_datos = $asunto";
                    $organizacion = SoloFun_ExecSqlFull($sql0, $arr, $oConexion);
                    //$SoloSubject = "Reasignacion del Ticket No. $txtId sobre: '$organizacion'";
                    //$SoloContent = "Ticket No. <b>".$txtId."<b>"."<br><br>Sobre: '" .$organizacion."'<br><br>" ." Ha sido reasignado a: " .$xtxtTecnicoNombre2;
                    $oPHPMailer->Subject = "Reasignacion del Ticket No. $txtId";
                    $oPHPMailer->Body = "Ticket No. $txtId
Organización: '" .$organizacion."'
Ha sido reasignado a: " .$xtxtTecnicoNombre2."


(Las tildes han sido omitidas intencionalmente para evitar problemas de lectura)";

                    //SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
    //            }

                if ($txtFechaAsignacion2 <> ""){
                    $sql .=  " fecha_asignacion2='$txtFechaAsignacion2',";
                    $sql .= " fecha_asignacion = CURRENT_TIMESTAMP, ";
                }

                if ($XtxtTecnicoUser2 <> "")
                    $sql .=  " tecnico_user2='$XtxtTecnicoUser2',";

                if ($xtxtReasignacionMotivo <> "")
                    $sql .=  " reasignacion_motivo='$xtxtReasignacionMotivo',";
            }else{
                //'Obtiene el nombre del tecnico que va a atender el ticket
                //$strsql = "SELECT codigo,nombre,mail,Administrador from tb_soporte where codigo like '{$_REQUEST["xtxtTecnicoUser1Hid"]}'";
                $strsql = "SELECT co_usua, no_usua, mail, a.nu_usua FROM solotb_usuario a left join solotb_usuario_infoadic b on a.nu_usua = b.nu_usua WHERE co_usua = '{$_REQUEST["xtxtTecnicoUser1Hid"]}'";
//echo $strsql;
                //$strsql = "SELECT co_usua, no_usua, nu_usua FROM solotb_usuario WHERE co_usua = '{$_REQUEST["xtxtTecnicoUser1Hid"]}'";
                SoloFun_ExecSql ($strsql, $ArrTecnico);
                $sql .= " estado = 60,";
                $sql .= " tecnico_user1 = '{$ArrTecnico[0][0]}',";
                $sql .= " tecnico_nombre1 = '{$ArrTecnico[0][1]}',";
                $sql .= " tecnico_responsable_user = '{$ArrTecnico[0][0]}',";
                $sql .= " tecnico_responsable_nombre = '{$ArrTecnico[0][1]}',";
                $sql .= " fecha_asignacion1 = CURRENT_TIMESTAMP, ";
                $sql .= " fecha_asignacion = CURRENT_TIMESTAMP, ";
//printArray($ArrTecnico);
//echo "fasfdfs";
                $nu_usua = $ArrTecnico[0][3];

                $strsql = "UPDATE tb_soporte set cant_tickets_realizados = (cant_tickets_realizados+1) where nu_usua='$nu_usua'";
                array_push($arrQueries, $strsql);
                array_push($arrQueries, crearQueryLog("tb_soporte", "UPDATE", $strsql));

                //$sql0 = "Update tb_soporte set cantidad = (cantidad+1) where codigo = '{$ArrTecnico[0][0]}'";
                //array_push($arrQueries, $sql0);
                //array_push($arrQueries, crearQueryLog("tb_soporte", "UPDATE", $sql0));
                $sql0 = "UPDATE solotb_ticket set estado = 60 WHERE id = $txtId";
                array_push($arrQueries, $sql0);
                array_push($arrQueries, crearQueryLog("solotb_ticket", "UPDATE", $sql0));

                //CORREO DIRIGIDO AL JEFE DE DEPARTAMENTO Y AL TECNICO QUE VA A ATENDER EL REQUERIMIENTO
                //$sql123 = "select mail, nombre from tb_soporte where codigo like '$XtxtTecnicoUser1'";
                //$datos_tecnico = EjecutaSentenciaSql($sql123);
                //$SoloTos = "{$ArrDatosSupervisor[0][1]}, {$ArrTecnico[0][2]}";

                $oPHPMailer->ClearAddresses();
                $oPHPMailer->AddAddress($ArrTecnico[0][2]);
                //$SoloSubject = "Fecha de expiracion del Ticket No. " . $txtId .  " ha sido modificada";
                //$SoloSubject = "Asignacion de tramite a delegado";
                $expira = substr($fechaexpiracion,0,10);
                //$SoloContent = "Ticket No. <b>$txtId</b> ha sido asignado a: {$ArrTecnico[0][1]}<br/>Asignado por: " .$_SESSION["no_usua"];
                $oPHPMailer->Subject = "Asignacion de tramite a delegado";
                $oPHPMailer->Body = "Ticket No. $txtId ha sido asignado a: {$ArrTecnico[0][0]}
Asignado por: " .$_SESSION["no_usua"]."


(Las tildes han sido omitidas intencionalmente para evitar problemas de lectura)";
            }
        }

        /*if ($Cboestado == 61) {//REALIZADO
            //$strSql = "select max(secuencia) as secuencia  from solotb_ticketmensaje where id_ticket=$txtId";
            //$oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"],
            //        $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"], $WORKFLOW["encoding"]);
            //if(!$oConexion->EjecutarQuery($strSql)) {
            //    $strERROR = 1;
            //    $err = 0;
            //}
            //$Maxsecuencia1 = SoloFun_ExecSql($strSql, $Arreglo);
            $fechasolucion = date('Y/m/d H:i'). ":00";
            //fechasolucion=FormatFecha(fechasolucion,"MM/DD/YYYY","YYYY/MM/DD")
            //$hora1 = date('H:i'). ":00";
            //$fechasolucion .= " ". $hora1;
            $sql .=  "fecha_solucion='" . $fechasolucion . "',";
            $fecha1 = $SoloArrmails[0][1];
            $pivot = $fecha1;
            $dias = DateDiff("h",$fecha1,$fechasolucion);
            $dias2 = DateDiff("d",$fecha1,$fechasolucion);

            for ($cont = 1; $i < $dias2; $i++) {
                $fechafin = DateAdd("d",1,$pivot);
                $pivot = $fechafin;
                if (weekday($fechafin) ==7 || weekday($fechafin) == 1)
                    $resta++;

            }

            $dias /= 24;
            $dias -= resta;
        }else
            $dias = 0;*/

        if ($XtxtActualizacionUser <> "") {
            $sql .=  " ultima_actualizacion_usuario='$XtxtActualizacionUser',";
            //$sql .=  "reasignacion_user='" . $XtxtActualizacionUser . "',";
        }

        //if ($txtActualizacionFecha <> "")
        //    $sql .=  " ultima_actualizacion_fecha='$txtActualizacionFecha',";
        //$sql .=  " ultima_actualizacion_fecha = CURRENT_DATE";
        $sql .=  " ultima_actualizacion_fecha = CURRENT_TIMESTAMP";


        //$sql .=  " cantidad_tiempo_total='$ntxtTiempoDias dias',";
        //$sql .=  " cantidad_tiempo_dias=" . $dias;
        $sql .=  " where id_ticket= $txtId and cod_dpto = $cod_dpto";
        array_push($arrQueries, $sql);
        array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));

//        $sql = "select id2 from solotb_nivel2 where co_supervisor = {$_SESSION["id_usua"]}";
//        $cod_dpto = SoloFun_ExecSql($sql, $Arreglo);
//        $sql = "update solotb_ticket_dpto set
//        estado = 60
//        where id_ticket = $txtId and cod_dpto = $cod_dpto";
//        array_push($arrQueries, $sql);

        //$ret = SoloFun_ExecQuery($sql);
        $ret = false;
        $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"],
                $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"], $WORKFLOW["encoding"]);
        $ret = $oConexion->EjecutarTransaccion($arrQueries);
        $oConexion->Cerrar();

        if($ret && $hay_mail){
            $oPHPMailer->Send();
            //SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
        }
//printArray($arrQueries);
        //actualizar la cantidad de trabajos asignados al delegado
//        if($ret && empty($_REQUEST["xtxtTecnicoUser1HidPrev"])) {
//            $sql0 = "select cantidad from tb_soporte where administrador = {$_SESSION["id_usua"]} and codigo = '{$_REQUEST["xtxtTecnicoUser1"]}'";
//            $cantidad = SoloFun_ExecSql ($sql0, $ArrCantidad);
//            $cantidad++;
//
//            $sql1 = "update tb_soporte set cantidad = $cantidad where administrador = {$_SESSION["id_usua"]} and codigo = '{$_REQUEST["xtxtTecnicoUser1"]}'";
//            //SoloFun_ExecQuery($strsql);
//            //echo $sql1;
//        }
        //echo $sql;
//printArray($arrQueries);
        header("Location: solotrn_IngresarTicketUsuario.php?SoloError=0&opcion=$opcion&IdTicket=$txtId");
        break;
    case 2://SECRETARIA
        $arrQueries = array();
    //CREAR AQUÍ EL PROCEDIMIENTO PARA MODIFICAR EL TICKET DE ACUERDO AL ACCESO
        $tipo = "UPDATE";
        $tabla = "solotb_ticket";
        $sql = "$tipo $tabla set ";
        $sql .= "usuario_emisor_email = '$XtxtMail', ";
        $sql .= "usuario_emisor_nivel = '$txtcargo', ";
        $sql .= "usuario_emisor_empresa = '$txtempr', ";
        $sql .= "usuario_emisor_nombre = '$XtxtNombre', ";
        $sql .= "usuario_emisor_fono = '$xtxtTelefono', ";
        $sql .= "area = $CboArea, ";
        $sql .= "categoria1 = $CboCategoria1, ";
        $sql .= "categoria2 = $CboCategoria2, ";
        $sql .= "descripcion_solicitud1 = '$XtxtDescripcionSolicitud1', ";
        $sql .= "descripcion_solicitud2 = '$xtxtDescripcionSolicitud2', ";
        $sql .= "ultima_actualizacion_fecha = CURRENT_TIMESTAMP, ";//, estado_registro, usuario_emisor_empresa,";
        $sql .= "ultima_actualizacion_usuario = '$XtxtActualizacionUser' ";
        $sql .= "where id = $txtId";
        array_push($arrQueries, $sql);
        array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));

        $tabla = "solotb_ticket_dpto";
        $sql = "$tipo $tabla set ";
        $sql .= "cod_dpto = $CboArea, estado = 62, Administrador = $Administrador ";
        $sql .= "where id_ticket = $txtId";
        array_push($arrQueries, $sql);
        array_push($arrQueries, crearQueryLog($tabla, $tipo, $sql));
//echo $sql;

        //$ret = SoloFun_ExecQuery($sql);
        //SoloFun_ExecQuery(crearQueryLog($tabla, $tipo, $sql));
        $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"],
                $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"], $WORKFLOW["encoding"]);
        $ret = $oConexion->EjecutarTransaccion($arrQueries);
        $oConexion->Cerrar();
//printArray($arrQueries);
        //CORREO DIRIGIDO A LA SECRETARIA Y AL JEFE DE DEPARTAMENTO
        //$SoloTos = "$XtxtMail, {$ArrDatosSupervisor[0][1]}";
        //$SoloSubject = "Requerimiento de tr&aacute;mite Ticket No. " . $txtId . " sobre '". $asunto . "' ha sido ingresado";
        //$SoloContent = "Ticket No.<b>$txtId</b> modificado el: $txtFecha<br><br>$XtxtDescripcionSolicitud1<br><br> Enviado por: " .$XtxtNombre;
        //$ret2 = SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);

        $sql = "SELECT campo2, paginas
                FROM TDL_DATOS WHERE id_tdl_datos = $asunto";
        //echo $sql;
        $oConexion = new Conexion($MIES["motor_base"], $MIES["db_usuario"], $MIES["db_password"],
                $MIES["basedatos"], $MIES["servidor"], $MIES["flags"], $MIES["encoding"]);
        $nom_organizacion = SoloFun_ExecSqlFull($sql, $arrOrganizaciones, $oConexion);

        $curr_fecha = date("d/m/Y H:i:s");

        $oPHPMailer->ClearAddresses();
        $oPHPMailer->AddAddress($ArrDatosSupervisor[0][1]);
        $oPHPMailer->AddAddress("cgmendozag@gmail.com");
        $oPHPMailer->Subject = "Requerimiento de tramite Ticket No. $txtId ha sido modificado";
        $oPHPMailer->Body = "Ticket No.<b>".$maxTicketId. "
Organizacion: $nom_organizacion
Modificado: $curr_fecha
Descripcion: $XtxtDescripcionSolicitud1
Enviado por: " .$XtxtNombre."


(Las tildes han sido omitidas intencionalmente para evitar problemas de lectura)";
        $ret2 = $oPHPMailer->Send();

        header("Location: solotrn_IngresarTicketUsuario.php?SoloError=0&opcion=$opcion&IdTicket=$txtId&asunto=$asunto");
        break;
    case 3:
    /*$soloSQL6 = "select tecnico_responsable_user,fecha_registro from solotb_ticket where id=".$txtId;
        soloFun_ExecSQL ($soloSQL6,$SoloArrmails);
        $sql123 = "select mail from tb_soporte where codigo like '". $SoloArrmails[0][0] ."'";
        $mailtecnico = EjecutaSentenciaSql($sql123);*/
        $tipo = "UPDATE";
        $tabla = "solotb_ticket";
        $sql = "$tipo $tabla set ";
        if ($bandera == 1) {
            if ($Cbomedida <> $_REQUEST["cbomedidacomp"] || $canti <> $_REQUEST["canticomp"]) {
                $sql .=  " tipo_medida_tiempo_servicio=" . $Cbomedida . ",";
                $sql .=  " cantidad_medida_tiempo_servicio=" . $canti . ",";

                //cuando el jefe de departamento va a asignar el ticket a un
                //delegado la primera vez que abre el ticket
                if(!empty($_REQUEST["xtxtTecnicoUser1Hid"])) {
                    $sql .= " tecnico_user1 = $XtxtTecnicoUser1,";
                    $sql .= " tecnico_nombre1 = $xtxtTecnicoNombre1,";
                    $sql .= " fecha_asignacion1 = CURRENT_TIMESTAMP,";

                    //$sql0 = "Update tb_soporte set cantidad = (cantidad+1) where codigo = '$XtxtTecnicoUser1'";
                    //array_push($arrQueries, $sql0);
                }

//                  '====================================================================================
//                    'hace update a la fecha de expiracion del ticket
                $fecha = $SoloArrmails[0][1];
                //$pivot = date('d/m/Y');
                $pivot = mktime();
                $hora1 = date('H:i') . ":00";
//                       'proceso para obtener la fecha de expiracion del tikcet
                switch ($Cbomedida) {
                    case 63:
                        for ($cont = 1; $i < $canti; $i++) {
                            $fechaexpiracion = DateAdd("d",1,$pivot);
                            //$timestamp= mktime($hours,$minutes,$seconds,$month,$day,$year);
                            $pivot = $fechaexpiracion;
                            $array_date = getdate($fechaexpiracion);
                            if ($array_date["weekday"] == 7 || $array_date["weekday"] == 1)
                                $cont--;
                        }
                        //$fechaexpiracion = FormatFecha($fechaexpiracion,"MM/DD/YYYY","YYYY-MM-DD");
                        $fechaexpiracion = date("Y-m-d H:i", $fechaexpiracion).":00";
                        //$fechaexpiracion .= " " . $hora1;
                        break;
                    case 64:
                    //$hora2 = DateAdd("h",$canti,date("H:i:s"))
                    //$hora2 = formatdatetime($fechaexpiracion,4);
                        $arr_date = split(" ", $fechaexpiracion);
                        $tiempo = split(":", $arr_date[1]);
                        $hora2 = $tiempo[0];
                        $fechaexpiracion = $txtFecha." ".$hora2. ":00";
                        break;
                    case 65:
                        $fechaexpiracion = DateAdd("n",$canti,$fecha);
                        break;
                }
                $txtFecha .= " ". $hora1;
                $sql .=  "fecha_expiracion='" . $fechaexpiracion . "',";

                $err = 0;
//              'CORREO DIRIGIDO AL TECNICO QUE VA A ATENDER EL REQUERIMIENTO
                $sql123 = "select mail from tb_soporte where codigo like '$XtxtTecnicoUser1'";
                $mailtecnico = EjecutaSentenciaSql($sql123);
                //$SoloSQL = "select valor from solotb_parametros order by id";
                //SoloFun_ExecSQL ($SoloSQL,$SoloArrParametros);
                //$SoloSMTP = $SoloArrParametros[15-1][0];
                //$SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                //$SoloFromNameDescription = $SoloArrParametros[16-1][0];
                //$SoloFromAddress = $SoloArrParametros[17-1][0];
//                $SoloTos = $mailtecnico;
//                $SoloSubject = "Fecha de expiracion del Ticket No. " . $txtId .  " ha sido modificada";
                $expira = substr($fechaexpiracion,0,10);

//                $LINK_A = "<a href='";
//                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=2&SoloUser=" . $_SESSION["co_usua"];
//                $LINK_C = "'></a>";
//
//                $CUERPO = "Fecha de expiraci&oacute;n del Ticket No. <b>".$txtId. "</b> ha sido modificada para el: ".$expira."<br><br>".   "  Modificada por: " .$_SESSION["co_usua"];

//                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

//                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);

                $oPHPMailer->ClearAddresses();
                $oPHPMailer->AddAddress($mailtecnico);
                $oPHPMailer->Subject = "Fecha de expiracion del Ticket No. " . $txtId .  " ha sido modificada";
                $oPHPMailer->Body = "Fecha de expiracion del Ticket No. $txtId ha sido modificada para el: ".$expira."
Modificada por: " .$_SESSION["co_usua"]."


(Las tildes han sido omitidas intencionalmente para evitar problemas de lectura)";
                $oPHPMailer->Send();

                //CORREO DIRIGIDO AL JEFE DE DEPARTAMENTO
//                $SoloTos = $ArrDatosSupervisor[0][0];
//                $SoloSubject = "Fecha de expiracion del Ticket No. " . $txtId .  " ha sido modificada";
//                $expira = substr($fechaexpiracion,0,10);
//                $LINK_A = "<a href='";
//                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=1&SoloUser=" . $_SESSION["co_usua"];
//                $LINK_C = "'></a>";
//
//                $CUERPO = "Fecha de expiraci&oacute;n del Ticket No. <b>".$txtId. "</b> ha sido modificada para el: ".$expira. "<br><br>".   "  Modificada por: " .$_SESSION["co_usua"];
//
//                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;
//
//                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);

                //  'CORREO DIRIGIDO AL Usuario
                /*$err = 0;
                //$SoloSMTP = $SoloArrParametros[15-1][0];
                //$SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                //$SoloFromNameDescription = $SoloArrParametros[16-1][0];
                //$SoloFromAddress = $SoloArrParametros[17-1][0];
                $SoloTos = $XtxtMail;
                $SoloSubject = "Fecha de expiracion del Ticket No. " . $txtId .  " ha sido modificada";
                $expira = substr($fechaexpiracion,0,10);
                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=1&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "Fecha de expiraci&oacute;n del Ticket No. <b>".$txtId. "</b> ha sido modificada para el: ".$expira. "<br><br>".   "  Modificada por: " .$_SESSION["co_usua"];

                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
                 *
                */
//   '======================================================================================
            }
        }

        if ($CboEstado <> "") {
            if ($compestado <> $CboEstado) {
//              'CORREO DIRIGIDO AL TECNICO
                $err=0;
                /*
                //$SoloSQL = "select valor from solotb_parametros order by id";
                //SoloFun_ExecSQL ($SoloSQL,$SoloArrParametros);
                //$SoloSMTP = $SoloArrParametros[15-1][0];
                //$SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                //$SoloFromNameDescription = $SoloArrParametros[16-1][0];
                //$SoloFromAddress = $SoloArrParametros[17-1][0];
                */
                $SoloTos = $mailtecnico;
                $SoloSubject = "Estado del Ticket No. $txtId ha sido modificado";
                $sqlpara = "select valor from solotb_parametros where id=".$CboEstado;
                $estado1 = EjecutaSentenciaSql($sqlpara);
                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=2&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";
                $CUERPO = "El estado del ticket ha sido modificado a: '".$estado1. "'";
                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;
                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);


//              'CORREO DIRIGIDO AL Usuario
                $err = 0;
                //$SoloSMTP = $SoloArrParametros[15-1][0];
                //$SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                //$SoloFromNameDescription = $SoloArrParametros[16-1][0];
                //$SoloFromAddress = $SoloArrParametros[17-1][0];
                $SoloTos = $XtxtMail;
                $SoloSubject = "Estado del Ticket No. " . $txtId . " ha sido modificado";
                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=1&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "El estado del ticket ha sido modificado a: '".$estado1. "'";

                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
            }
            $sql .=  "estado='" . $CboEstado . "',";
        }
        if ($XtxtTecnicoNombre2 <> "" && $XtxtTecnicoUser2 <> "") {
            $sql .=  "tecnico_nombre2='" . $XtxtTecnicoNombre2 . "',";
            $soloSQL6 = "select reasignacion_user,tecnico_user2,tecnico_user1,reasignado from solotb_ticket where id=".$txtId;
            soloFun_ExecSQL ($soloSQL6,$SoloArrtick);
            $reasigU = $SoloArrtick[0][3];
            $XtxtTecnicoUser1 = $SoloArrtick[0][2];
            $tecnicoV = $SoloArrtick[0][1];
//					'Codigo para que se sume y se reste respectivamente de acuerdo a la reasignacion del ticket
            if ($reasigU == "F") {
                $strsql = "Update tb_soporte set cantidad = (cantidad-1) where codigo='" . $XtxtTecnicoUser1 . "'";
                $ret2 = SoloFun_ExecQuery($strsql);
                $sql .=  "reasignado='V',";
            }
            if ($XtxtTecnicoUser2 <> $tecnicoV) {
                $strsql = "Update tb_soporte set cantidad = (cantidad-1) where codigo='" . $tecnicoV . "'";
                $ret2 = SoloFun_ExecQuery($strsql);

                $strsql = "Update tb_soporte set cantidad = (cantidad+1) where codigo='" . $XtxtTecnicoUser2 . "'";
                $ret2 = SoloFun_ExecQuery($strsql);

                $sql .=  "tecnico_responsable_nombre='" . $XtxtTecnicoNombre2 . "',";
                $sql .=  "tecnico_responsable_user='" . $XtxtTecnicoUser2 . "',";
//							'agarra el mail del nuevo tecnico--------------
                $sql123 = "select mail from tb_soporte where codigo like '". $XtxtTecnicoUser2 ."'";
                $mailtecnico2 = EjecutaSentenciaSql($sql123);
//							'---------------------------------
                $err = 0;
                $SoloSQL = "select valor from solotb_parametros order by id";
                SoloFun_ExecSQL ($SoloSQL,$SoloArrParametros);
                $SoloSMTP = $SoloArrParametros[15-1][0];
                $SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                $SoloFromNameDescription ="Help Desk";
                $SoloFromAddress = $SoloArrParametros[17-1][0];
                $SoloTos = $XtxtMail; //'AL USUARIO
//                            'SoloSubject="Reasignacion de tecnico"
//                            'SoloContent="Se le ha asigando un nuevo tecnico Usted ahora sera atendido por" & XtxtTecnicoNombre2
                $SoloSubject = "Reasignacion del Ticket No. " . $txtId . " sobre: '".$asunto. "'";

                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=1&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "Ticket No. <b>".$txtId."<b>"."<br><br>Sobre: '" .$asunto."'<br><br>" ." Ha sido reasignado, usted sera atendido por: " .$XtxtTecnicoNombre2;

                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

                SoloFun_SendMailSugerencias();
                $err = 0;
                $SoloSMTP = $SoloArrParametros[15-1][0];
                $SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                $SoloFromNameDescription ="Help Desk";
                $SoloFromAddress = $SoloArrParametros[17-1][0];
                $SoloTos = $mailtecnico;
                $SoloSubject = "Reasignacion del Ticket No. " . $txtid . " sobre: '".$asunto. "'";

                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=2&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "Ticket No. <b>".$txtId."<b>"."<br><br>Sobre: '" .$asunto."'<br><br>" ." Ha sido reasignado a: " .$XtxtTecnicoNombre2;

                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;

                SoloFun_SendMailSugerencias ();
                $err = 0;
                $SoloSMTP = $SoloArrParametros[15-1][0];
                $SoloSMTP_Port = 25; //'SoloArrParametros(0,15-1)
                $SoloFromNameDescription = "Help Desk";
                $SoloFromAddress = $SoloArrParametros[17-1];
                $SoloTos = $mailtecnico2;
                $SoloSubject = "Reasignacion del Ticket No. " . $txtId;

                $LINK_A = "<a href='";
                $LINK_B = "http://192.168.1.113:8080/SoloPortal/Intranet/Berlin/solotrn_signon_alternate.asp?dia=2&SoloUser=" . $_SESSION["co_usua"];
                $LINK_C = "'></a>";

                $CUERPO = "Se le ha asignado el Ticket No. <b>".$txtId."<b>"."<br><br>Sobre: '".$asunto."'";
//$XtxtTecnicoNombre2;
                $SoloContent = $LINK_A . $LINK_B . $CUERPO . $LINK_C;
                SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos);
            }
//					'-----------------------------------------------------------
        }
        if ($txtFechaAsignacion2 <> "")
            $sql .=  "fecha_asignacion2='" . $txtFechaAsignacion2 . "',";

        if ($XtxtTecnicoUser2 <> "")
            $sql .=  "tecnico_user2='" . $XtxtTecnicoUser2 . "',";

        if ($xtxtReasignacionMotivo <> "")
            $sql .=  "reasignacion_motivo='" . $xtxtReasignacionMotivo . "',";

        if ($Cboestado == 61) {
            $strSql = "select max(secuencia) as secuencia  from solotb_ticketmensaje where id_ticket=".$txtId;
            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"],
                    $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"], $WORKFLOW["encoding"]);
            if(!$oConexion->EjecutarQuery($strSql)) {
                $strERROR = 1;
                $err = 0;
            }
            $rows = $oConexion->getData("NUM");
            $Maxsecuencia1 = $rows[0][0];
//					'strsql="select fecha_transaccion,fecha from solotb_ticketmensaje where id_ticket="& txtid & " and secuencia="&                    Maxsecuencia1
//	                'soloFun_ExecSQL strsql,SoloArrfechas
            $fechasolucion = date('Y/m/d');
            //fechasolucion=FormatFecha(fechasolucion,"MM/DD/YYYY","YYYY/MM/DD")
            $hora1 = date('H:i'). ":00";
            $fechasolucion .= " ". $hora1;
//					'fechasolucion=FormatFecha(SoloArrfechas[0][1],"MM/DD/YYYY","YYYY-MM-DD")
            $sql .=  "fecha_solucion='" . $fechasolucion . "',";
            $fecha1 = $SoloArrmails[0][1];
            $pivot = $fecha1;
            $dias = DateDiff("h",$fecha1,$fechasolucion);
            $dias2 = DateDiff("d",$fecha1,$fechasolucion);
            for ($cont = 1; $i < $dias2; $i++) {
                $fechafin = DateAdd("d",1,$pivot);
                $pivot = $fechafin;
                if (weekday($fechafin) ==7 || weekday($fechafin) == 1)
                    $resta++;

            }
            $dias /= 24;
            $dias -= resta;
//					'$sql .=  "cantidad_tiempo_dias='" & dias & "',"
        }else
            $dias = 0;

        if ($XtxtActualizacionUser <> "") {
            $sql .=  "ultima_actualizacion_usuario='" . $XtxtActualizacionUser . "',";
            $sql .=  "reasignacion_user='" . $XtxtActualizacionUser . "',";
        }

        if ($txtActualizacionFecha <> "")
            $sql .=  "ultima_actualizacion_fecha='" . $txtActualizacionFecha . "',";

        $sql .=  "cantidad_tiempo_total='" . $ntxtTiempoDias . " dias',";
        $sql .=  "cantidad_tiempo_dias=" . $dias;
        $sql .=  " where id=" . $txtId;
//echo $sql;
        $ret = SoloFun_ExecQuery($sql);
        SoloFun_ExecQuery(crearQueryLog($tabla, $tipo, $sql));

        /*
//					'Guarda los archivos problema en la bd
//					'==========================================================================================================================================
//        if ($txtarchivo1 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD");
//            //Conexion=$_SESSION["SoloConn"];
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 17;
//            $Archivo = $txtarchivo1;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
////					'archivo problema2
//        if ($txtarchivo2 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 18;
//            $Archivo = $txtarchivo2;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
////					'archivo problema3
//        if ($txtarchivo3 <> "") {
//            //Set Objeto = Server.CreateObject("SbnCom_UpFilesBD2.Sbncls_UpFilesBD")
//            //Conexion=$_SESSION["SoloConn")
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 19;
//            $Archivo = $txtarchivo3;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
//
////					'archivo problema4
//        if ($txtarchivo4 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 20;
//            $Archivo = $txtarchivo4;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
//
////					'archivo problema5
//        if ($txtarchivo5 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 21;
//            $Archivo = $txtarchivo5;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }

//					'Guarda los archivos Solucion en la bd
//					'==========================================================================================================================================
//        if ($txtfile1 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 35;
//            $Archivo = $txtfile1;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
////					'archivo problema2
//        if ($txtfile2 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 36;
//            $Archivo = $txtfile2;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
//
////					'archivo solucion3
//        if ($txtfile3 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 37;
//            $Archivo = $txtfile3;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
//
////					'archivo solucion4
//        if ($txtfile4 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 38;
//            $Archivo = $txtfile4;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
//
////					'archivo solucion5
//        if ($txtfile5 <> "") {
//            $oConexion = new Conexion($WORKFLOW["motor_base"], $WORKFLOW["db_usuario"], $WORKFLOW["db_password"], $WORKFLOW["basedatos"], $WORKFLOW["servidor"], $WORKFLOW["flags"]);
//            $SQL = "select * from solotb_Ticket where id=". $txtId;
//            $Campo = 39;
//            $Archivo = $txtfile5;
//            $respuesta = $oConexion->GrabaImagen($SQL,$Campo,$Archivo);
//            if ($respuesta == -1) {
//                echo $oConexion->getErrorMessage();
//                $oConexion->Cerrar();
//                return;
//            }
//            echo "ok";
//            $oConexion->Cerrar();
//        }
        */


//					'if ret=0 then
        header("Location: solotrn_IngresarTicketUsuario.php?SoloError=0&opcion=" . $opcion . "&IdTicket=" . $txtId);
        /*
//					'else
//				 	'	header("Location: solotrn_IngresarTicketUsuario.asp?SoloError=1"
//					'end if



//			'case "2":
//			'		ret=-1
//			'		sql="update solotb_ticket set estado_registro='I' where id=" & txtId
//					'rw "",sql
//					're
//			'		ret=SoloFun_ExecQuery2(sql,SoloConnR)

//			'		if ret=0 then
//			'	 		header("Location: solotrn_IngresarTicketUsuario.asp?SoloError=0&opcion=2"
//			'		else
//			'			header("Location: solotrn_IngresarTicketUsuario.asp?SoloError=1&opcion=2"
//			'		end if
//					'response.Write(opcion)
        */
        break;
}


/*function SoloFun_SendMailSugerencias() {
    $a = 1;
}*/

/*function SoloFun_SendMailSugerencias2() {
//     'Enviar Mail de Sugerencias
    $err = 0;
    //Dim objMailer
    //Set objMailer = Server.CreateObject("Dundas.Mailer")
    if err<>0 then
    echo err.description
//         're
    end if
//   'rw "SMTP",SoloSMTP
//   'rw "PORT",SoloSMTP_Port
//   'rw "FROM NAME",SoloFromNameDescription
//   'rw "ADDRESS",SoloFromAddress
//   'rw "TOS",SoloTos
//   'rw "SUBJECTS",SoloSubject
//   're

    objMailer.SMTPRelayServers.Add SoloSMTP, SoloSMTP_Port
    objMailer.FromAddress = SoloFromAddress
    objMailer.FromName = SoloFromNameDescription
    objMailer.Subject = SoloSubject
    objMailer.htmlBody = SoloContent
    objMailer.TOs.Add SoloTos
    objMailer.SendMail
    if err<>0 then
    echo "error al enviar correo de sugerencias" & err.description
    response.end
//         'SoloFun_SendMailSugerencias=-1
    else
//      '   rw "","ok"
//         'SoloFun_SendMailSugerencias=0
    end if
    set ObjMailer = Nothing
}*/
function SoloFun_SendMailSugerencias($SoloSubject, $SoloContent, $SoloTos) {
    //'Enviar Mail de Sugerencias
    /*
//      Dim objMailer
//      Set objMailer = Server.CreateObject("Dundas.Mailer")
//      if err<>0 then
//         response.write err.description
//         //'re
//      end if
    //'rw "SMTP",SoloSMTP
    //'rw "PORT",SoloSMTP_Port
    //'rw "FROM NAME",SoloFromNameDescription
    //'rw "ADDRESS",SoloFromAddress
    //'rw "TOS",SoloTos
    //'rw "SUBJECTS",SoloSubject
    //'re
    */
    /*objMailer.SMTPRelayServers.Add SoloSMTP, SoloSMTP_Port
      objMailer.FromAddress = SoloFromAddress
      objMailer.FromName = SoloFromNameDescription
      objMailer.Subject = SoloSubject
      objMailer.htmlBody = SoloContent
      objMailer.TOs.Add SoloTos
      objMailer.SendMail	   */

    //if err<>0 then
    if(mail($SoloTos, $SoloSubject, $SoloContent)) {
        echo "error al enviar correo de sugerencias";
        //return false;
        //'SoloFun_SendMailSugerencias=-1
    }//else
    //'   rw "","ok"
    //'SoloFun_SendMailSugerencias=0
    //end if
    //set ObjMailer = Nothing
    return true;
}
?>
